function pagination(json) {
    if (!json.id) {
        console.error('未传入id');
        return false;
    }
    if (!json.total) {
        console.error('未传入总条数');
        return false;
    }
    if (!json.pageSize) {
        console.error('未传入每页条目个数');
        return false;
    }

    var $Div = document.getElementById(json.id);
    var total = json.total;
    var pageSize = json.pageSize;
    var allPage = Math.ceil(total / pageSize);
    var currentPage = json.currentPage || 1;
    var hidePage = json.hidePage || false;
    var callback = json.callback || function () { };
    var init = true;
    // 单页时，是否显示
    if (!hidePage && allPage === 1) return;

    // 首页
    if (currentPage > 5 && allPage >= 10) {
        var $A = document.createElement('a');
        $A.setAttribute('class', 'pagination_pager');
        $A.setAttribute('data-number', 1);
        $A.innerHTML = '首页';
        $Div.appendChild($A);
    }
    //上一页
    if (currentPage > 1) {
        var $A = document.createElement('a');
        $A.setAttribute('class', 'pagination_pager');
        $A.setAttribute('data-number', (currentPage - 1));
        $A.innerHTML = '上一页';
        $Div.appendChild($A);
    }

    // 9个一组算法i
    if (allPage <= 9) {
        for (var i = 1; i <= allPage; i++) {
            var $A = document.createElement('a');
            $A.setAttribute('class', 'pagination_pager');
            $A.setAttribute('data-number', i);
            if (currentPage === i) {
                $A.innerHTML = i;
                $A.classList.add('pagination_active');
            } else {
                $A.innerHTML = i;
            }
            $Div.appendChild($A);
        }
    } else {
        // 以currentPage数为中心 一共 9个数  向左右两侧扩散5 - 1 个数
        for (var i = 1; i <= 9; i++) {
            var $A = document.createElement('a');
            $A.setAttribute('class', 'pagination_pager');
            // 当前页数 小于5 时 向左扩散会出现小于1的书 要做特殊处理
            if (currentPage < 5) {
                $A.setAttribute('data-number', i);
                if (currentPage === i) {
                    $A.innerHTML = i;
                    $A.classList.add('pagination_active');
                } else {
                    $A.innerHTML = i;
                }
            } else if (allPage - currentPage < 4) {
                // 最后几页向右扩散时也会出问题  所以阻止扩散 只显示最后九页                        
                $A.setAttribute('data-number', (allPage - 9 + i));
                // 特殊处理后4几页
                if ((allPage - currentPage) === 0 && i === 9) {
                    $A.innerHTML = allPage - 9 + i;
                    $A.classList.add('pagination_active');
                } else if ((allPage - currentPage) === 1 && i === 8) {
                    $A.innerHTML = allPage - 9 + i;
                    $A.classList.add('pagination_active');
                } else if ((allPage - currentPage) === 2 && i === 7) {
                    $A.innerHTML = allPage - 9 + i;
                    $A.classList.add('pagination_active');
                }
                else if ((allPage - currentPage) === 3 && i === 6) {
                    $A.innerHTML = allPage - 9 + i;
                    $A.classList.add('pagination_active');
                }
                else {
                    $A.innerHTML = (allPage - 9 + i);
                }
            }
            // 正常处理方式 以currentPage为中心 向两侧扩散 4个数
            else {
                $A.setAttribute('data-number', (currentPage - 5 + i));
                if (i === 5) {
                    $A.innerHTML = currentPage - 5 + i;
                    $A.classList.add('pagination_active');
                } else {
                    $A.innerHTML = (currentPage - 5 + i);
                }
            }
            $Div.appendChild($A);
        }
    }

    // 尾页
    if ((allPage - currentPage) > 5) {
        var $A = document.createElement('a');
        $A.setAttribute('class', 'pagination_pager');
        $A.setAttribute('data-number', allPage);
        $A.innerHTML = '尾页';
        $Div.appendChild($A);
    }
    // 下一页
    if ((allPage - currentPage) > 0) {
        var $A = document.createElement('a');
        $A.setAttribute('class', 'pagination_pager');
        $A.setAttribute('data-number', (currentPage + 1));
        $A.innerHTML = '下一页';
        $Div.appendChild($A);
    }


    var $All = document.getElementsByClassName('pagination_pager');
    for (var i = 0; i < $All.length; i++) {
        $All[i].onclick = function () {
            var currentPage = parseInt(this.getAttribute('data-number'));
            $Div.innerHTML = '';
            pagination({
                id: json.id,
                currentPage: currentPage,
                pageSize: pageSize,
                total: total,
                hidePage: true,
                callback: callback
            });

            init = false;
            // 非初始化回调
            if (!init) {
                callback(currentPage);
            }

        }
    }
}

